Snapshots and mirroring are among the techniques employed by data storage facilities for disaster recovery planning. A snapshot may be a copy of data residing on a storage volume (e.g., a disk drive) that is created at a particular point in time. Since a full backup of a large data set can take a long time to complete, a snapshot may define the dataset to be backed up. Data associated with the snapshot is static, and is therefore protected from any subsequent changes to the data on the volume (e.g., a database update).
One typical implementation of a snapshot is called a “pointer snapshot.” A pointer snapshot records an index of data locations to be protected on the volume. Pointer snapshots can be created fairly quickly and require far less storage space than is required to maintain a separate copy of the snapshot data.
Mirroring replicates a local storage volume to a separate remote storage volume, in order to ensure redundancy. For a storage facility comprising the local and remote storage volumes, mirroring can be implemented either synchronously or asynchronously. During synchronous mirroring, a host (e.g., a database server) communicating with the storage facility receives a write acknowledgement after data is successfully written to both the local and the remote storage volumes. Synchronous mirroring is typically implemented over a high speed local area network (LAN) or a wide area network (WAN).
During asynchronous mirroring, the host receives the write acknowledgement after the data is written to the local volume (i.e., the remote volume may have not yet received the data and/or may not have acknowledged writing the data). Asynchronous mirroring is typically implemented over lower speed wide area networks, especially over greater distances.
Asynchronous mirroring can be implemented using snapshot-based synchronization. During snapshot-based synchronization, a Most Recent Snapshot (MRS) is defined and compared it to a Last Replicated Snapshot (LRS). Any differences detected when comparing the MRS to the LRS are then conveyed to the remote volume. Upon conveying the differences, the LRS is deleted and the MRS becomes the new LRS. Therefore, snapshots defined during snapshot-based synchronization can be marked as “short-lived”, since the MRS and LRS are typically retained for short time periods.